package com.jdcjk.project.main.model;

import android.content.Context;

import com.jdcjk.base.model.BaseModel;
import com.jdcjk.project.main.model.entity.CarListInfo;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by dong on 2016/12/12.
 * 主程序数据提供类
 */
public class MainModel extends BaseModel {

    public MainModel(Context context) {
        super(context);
    }

    /**
     * 获取用户终端列表
     *
     * @param url            请求url
     * @param account        用户账号
     * @param stringCallback 回调
     */
    public void getTerminalForUser(String url, String account, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("account", account)
                .build()
                .execute(stringCallback);
    }

    /**
     * 获得app组信息
     * @param url            请求地址
     * @param aId            App Id
     * @param _api_key       API Key
     * @param stringCallback 回调
     */
    public void getAppGroupInfo(String url, String aId, String _api_key, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("aId", aId)
                .addParams("_api_key", _api_key)
                .build()
                .execute(stringCallback);
    }

    /**
     * 绑定终端
     *
     * @param url            请求url
     * @param simNum         终端编号
     * @param account        用户账号
     * @param stringCallback 回调
     */
    public void bindTerminal(String url, String account, String simNum, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("account", account)
                .addParams("simNum", simNum)
                .build()
                .execute(stringCallback);
    }

    /**
     * 解绑终端
     *
     * @param url            请求url
     * @param simNum         终端编号
     * @param account        用户账号
     * @param stringCallback 回调
     */
    public void unbindTerminalForUser(String url, String account, String simNum, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("account", account)
                .addParams("simNum", simNum)
                .build()
                .execute(stringCallback);
    }

    /**
     * 获取用户下设备的报警信息
     *
     * @param url            请求url
     * @param account        用户账号
     * @param stringCallback 回调
     */
    public void getCarWarmingInfoList(String url, String account, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("account", account)
                .build()
                .execute(stringCallback);
    }

    /**
     * 删除一条报警信息
     *
     * @param url            请求url
     * @param id             信息id
     * @param stringCallback 回调
     */
    public void deleteWarningInfo(String url, String id, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("id", id)
                .build()
                .execute(stringCallback);
    }

    /**
     * 获取未读的信息数量
     *
     * @param url            请求UrL
     * @param uid            用户id
     * @param stringCallback 回调
     */
    public void getUnreadMsgNum(String url, String uid, StringCallback stringCallback) {
        OkHttpUtils.post()
                .url(url)
                .addParams("uid", uid)
                .build()
                .execute(stringCallback);
    }

    /**
     * 修改报警信息状态(将该设备所有报警信息都改为已读)
     *
     * @param url            请求UrL
     * @param terminalIDs    终端id，多个用,隔开
     * @param stringCallback 回调
     */
    public void updateMsgStatus(String url, String terminalIDs, StringCallback stringCallback) {
        OkHttpUtils.get()
                .url(url)
                .addParams("terminalIDs", terminalIDs)
                .build()
                .execute(stringCallback);
    }

    public List<CarListInfo> getCarListInfo() {
        List<CarListInfo> carListInfoList = new ArrayList<>();
        CarListInfo carListInfo1 = new CarListInfo();
        carListInfo1.setCarId("粤A 888888");
        carListInfo1.setSimNum("粤A 888888");
        carListInfo1.setTerminalNumber("ET210-44744");
        carListInfo1.setOnline(true);
        carListInfoList.add(carListInfo1);
        CarListInfo carListInfo2 = new CarListInfo();
        carListInfo2.setCarId("粤A 168888");
        carListInfo2.setSimNum("粤A 168888");
        carListInfo2.setTerminalNumber("ET210-44745");
        carListInfo2.setOnline(false);
        carListInfoList.add(carListInfo2);
        CarListInfo carListInfo3 = new CarListInfo();
        carListInfo3.setCarId("粤A 666666");
        carListInfo3.setSimNum("粤A 666666");
        carListInfo3.setTerminalNumber("ET210-44746");
        carListInfo3.setOnline(false);
        carListInfoList.add(carListInfo3);
        return carListInfoList;
    }


}
